c语言返回数组指针(指针c语言给数组赋值) 您所在的位置:网站首页 数组名 指针 c语言返回数组指针(指针c语言给数组赋值)

c语言返回数组指针(指针c语言给数组赋值)

2023-04-09 04:08| 来源: 网络整理| 查看: 265

关键词:指针、数组、指针和数组、指针操作、标准库函数开始和结束;

指针和数组:

在C语言中,指针与数组密切相关。

当使用数组时,编译器实际上将其转换为指针。

数组还有另一个特性:编译器会自动用指向数组第一个元素的指针替换数组名。

string StringArray[10]={'A1 ',' A2 ',' A3 ',' A4 ',' A5 ',' A6 ',' A7 ',' A8 ',' A9 ',' A10 ' };

string * p=StringArray//相当于p=stringgarray[0],所以在C语言中,数组操作就是指针操作。

所以这些做法是等价的:

1.

for(int I=0;i 10I){ 0

cout StringArray[I]' ';

}2.

string * ArrayEnd=end(string array);

for(string * p=StringArray;p ArrayEndp){ 0

cout * p“”;

}3.

string * ArrayBegin=StringArray

for(int I=0;i 10I){ 0

cout *(Arraybegin I)' ';

}4.

for(int I=0;i 10I){ 0

cout Arraybegin[I]' ';

}

指针操作:

指针可以在大小上进行比较,可以加或减一个整数,可以相互增加、减少和减少。

注意:这些只能在相同类型的指针之间进行。

1.两个相同类型的指针变量可以在大小上进行比较。

P1地址p2,p1 p2值为真。地址p1=地址p2,p1==p2值为真地址p1地址p2,p1 p2值为真2。可以减去两个相同类型的指针变量。

两个T *型指针p1和p2p1-p2=(地址P1-地址p2)/sizeof(T)注意,两个指针相减的结果不是两个指针所在物理地址的相减结果。

c是强数据类型的,编译器会根据指针指向的变量类型进行相应的调整。

因此,两个整形指针相减的结果是实际物理地址的差,然后除以4。

3.从指针变量中加或减一个整数的结果就是指针。

P3360T * n 3360整型变量或常量的指针p 3360T *指向地址的指针:p n sizeof(T)4。指针变量可以自动增加或减少。

T*指针p指向地址np,p:p指向n sizeof (t) p-,-,p : p指向n sizeof (t) 5。下标操作符“]”可以操作指针

p是T *类型的指针,n是整数变量或常数p[n]相当于*(p ^ n)

指针和机器物理地址:

指针可以理解为一种数据类型,与它所指向的变量类型有很强的相关性;

所以指针变量并不完全等于其机器物理地址的值。

因此,指针的-与机器地址的-不同。

字符串*类型的指针ArrayBegin加1后,实际物理地址增加32,即字符串的字节数。

ArrayBegin:0x7ffc061df210

ArrayBegin 1 :0x7ffc061df230如果想要获取指针的实际物理地址,

强制类型转换可以用在C、

将指针转换为long类型的整数地址;

long long intatraybegin _ address=(long long)intArrayBegin;

示例代码:中的其他详细信息

在cout中,十六进制可用于将指针直接输出为十六进制数,对应于其编译后的实际物理地址。

指针被强制转换为长整型;如果使用int,可能会出现溢出,导致编译错误。

您可以使用标准库函数begin和end来获取数组第一个元素的地址和最后一个元素地址之后的地址。

其他细节请直接查看源代码。

程序源代码:

#包含iostream

#包含字符串

#包含迭代器

使用命名空间标准;

int main()

{

string StringArray[10]={'A1 ',' A2 ',' A3 ',' A4 ',' A5 ',' A6 ',' A7 ',' A8 ',' A9 ',' A10 ' };

字符串*Arra

yEnd = end(StringArray) ; for (int i=0; i < 10 ; ++i ) { cout


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有